<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='../vue.js'></script>
</head>

<body>
    <div id='app'>
        <h1>我出生于 {{birthYear}},我今年 {{age}} 岁了</h1>
        <button @click="changeYear">修改出生年份</button>
        <button @click="changeAge">修改年龄</button>
    </div>
</body>
<script>
    const app = {
        data() {
            return {
                birthYear: 2000
            }
        },
        methods: {
            changeYear() {
                this.birthYear = 1999
            },
            changeAge() {
                console.log(this.age);
                // 默认的时候是无法修改计算属性的值，我们可以将计算属性配置成 set 和 get 
                // 然后实现可写的计算属性
                this.age = 24
            }
        },
        computed: {
            // 普通的计算属性是只读的，没办法进行赋值
            // age() {
            //     return new Date().getFullYear() - this.birthYear
            // }
            age: {
                // 获取函数
                get() {
                    return new Date().getFullYear() - this.birthYear
                },
                // 修改函数
                set(value) {
                    // 若不写则不变
                    this.birthYear = new Date().getFullYear() - value
                }
            }
        }
    }
    const vm = Vue.createApp(app).mount('#app')
</script>

</html>